"""
web端的关键字驱动类
    结构中属于行为代码层，主要的目的是作为一个工具类的角色
    在需要使用到这些工具的时候，通过这个类实现
    大型超市--购买工具箱--动用工具
    selenium--关键字--web自动化
    工具箱一般包含有需要的常规操作行为：
        启动，输入，点击....
    单独的工具类存在是没有意义的，一定需要关联到实际应用才能产生价值
"""

# 开始去超市购物
from selenium import webdriver
from time import sleep


# 定义工具类
class WebKeys:
    # 构造函数：类在初始化的时候，会自动运行
    def __init__(self):
        self.driver = webdriver.Chrome()

    # 访问url:
    def open(self, url):
        self.driver.get(url)

    # 退出
    def quit(self):
        self.driver.quit()

    # 元素定位
    def locator(self, name, value):
        return self.driver.find_element(name, value)

    # 输入
    def input(self, name, value, txt):
        locator = self.locator(name, value)
        sleep(0.5)
        locator.clear()
        locator.send_keys(txt)

    # 强制等待
    def wait(self, time_):
        sleep(time_)

